#include "json_file.h"

// 文件操作
namespace file_manager{

    /***********************************************************
     * Json文件读写
     ***********************************************************/
    // Json文件写入
    bool WriteJsonFile(string file_path, Json::Value& root){
        Json::StyledWriter sw;
        //输出到文件
        ofstream fout(file_path);
        fout << sw.write(root);
        fout.close();   

        // //直接输出
        // Json::FastWriter fw;
        // std::cerr << fw.write(root) << std::endl << std::endl;
        // //缩进输出
        // Json::StyledWriter sw;
        // std::cerr << sw.write(root) << std::endl << std::endl;
        return true; 
    }

    // Json文件读取
    Json::Value ReadJsonFile(string file_path){
        Json::Reader reader;
        Json::Value root;
        ifstream in(file_path.c_str(), ios::binary);
        if(!in.good()){
            std::cerr << "[ReadJsonFile] bad file!" << std::endl;
            return root; 
        }
        reader.parse(in,root);
        return root;    
    }

    // 检测Json字段是否有效
    bool CheckItemIsValid(Json::Value& json_data, string item){
        if(json_data.isMember(item) && !json_data[item].isNull()){
            return true;
        }
        return false;
    }

}; // namespace file_manager